perm filename LOGICP[S84,JMC] blob
sn#750930 filedate 1984-04-19 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 logicp[s84,jmc] The Importance of Logic Programming
C00007 00003 Kowalski, Clark, Colmerauer, Fernando Pereira, Ehud Shapiro,
C00008 ENDMK
Cā;
logicp[s84,jmc] The Importance of Logic Programming
Logic programming was invented by Alain Colmerauer and Robert
Kowalski in the early 1970s - partly in collaboration and partly
independently. It has been implemented first and primarily in the
programming language Prolog, and that first by Colmerauer and Roussel and
collaborators at Marseilles. Prolog now constitutes a rival to Lisp for
programming in artificial intelligence. In particular the ICOT "Fifth
Generation" project has concentrated its attention on Prolog and its
variants.
However, Prolog's candidacy as an AI programming language is only
a part of the interest in logic programming. Dealing with this first, my
opinion is that Prolog has features not present in Lisp but lacks some
important features of Lisp. It is reasonable to expect that someone will
succeed in getting the virtues of both. Specifically, the functional
composition features of Lisp are awkward to simulate in Prolog, and while
unification based programming packages can be made in Lisp, there is not a
standard one. Also Prolog sometimes compiles into good machine code that
cannot be obtained from Lisp and the converse is also true.
However, logic programming brings additional major innovations to
programming. Specifically, in some important cases it merges the
declarative and procedural approaches to instructing a computer. In
Prolog certain information can be thought of declaratively when it is
entered in the computer and then interpreted or compiled directly as
program. However, this cannot always be done, and the Horn clause subset
of first order logic may mark a natural boundary between such declarative
information that can be "executed" and the declarative information that
cannot. The latter has to be used in conjunction with other declarative
information to produce a program, but the parts of the program produced
have no one-to-one correspondence with the declarative statements.
From the AI and more general computer science points of view, the
important fact about logic programming is that it is leading to important
discoveries about the relation between facts and program.
From this I draw the conclusion that the Stanford Computer Science
Department should attempt to hire one of the outstanding researchers in
logic programming. Merely finding people who can give courses in logic
programming is an inadequate response. In terms of maintaining the
computer science research pre-eminence of Stanford, I consider this our
single most important lack.
I have a preliminary list of people who should be considered.
John McCarthy
Kowalski, Clark, Colmerauer, Fernando Pereira, Ehud Shapiro,